/**
*	bootstrap oa 系统首页js模块
*
*/

define(['init','fullcalendar','fullcalendar_zh-cn','moment','bsMsgView','codeDef','sysmanMain','bsMsgServ','bsUtil'],
    	function(init,fullcalendar,calendarLang,moment,msgView,codeDef,main,bsMsgServ,bsUtil) {
    		
    'use strict';
    
    var rootid = 'page-main';
    
    
    	
    var private_method = {
    	
    	calendarFunc:function() {
    		var qryUrl='/'+init.getSite()+'/oaDutyList/query/getDutyList.action';
			$('#'+rootid +' #calendar').fullCalendar({
				header: {
					right: 'prev,next today',
					left: 'title'
				},
				defaultView:'agendaDay',
				editable: false,
				eventLimit: true, // allow "more" link when too many events
				lang:'zh-cn',
			    minTime:'08:00',
				maxTime:'19:00',				    
			    theme:false,
			    events: qryUrl		    
			});			
			
    	},
		
		
			/**
			 * 生成通知信息
			 * @param _options.data		生成的数据
			 * @param _options.type		生成类型（1:normal,2:new）
			 * @param _options.evt		事件对象
			 */
			generateNotify:function(_options){
				var e = _options.evt;
				
				//定位dom
				var _el = $('#notify-list');
				
				_el.empty();
				
				//临时变量定义
				var _html = '';
				
				if(_options.data){
					var data
					if(_options.data.rows){
						data = _options.data.rows
					}else{
						data = _options.data
					}
					
					
					if(data){
					
						var _date 
						//循环生成信息
						$.each(data,function(i,o){		
							
							var _showDate,_tmpDate;
							if(o.public_date){
								_tmpDate = o.public_date.substr(0,10);
								if(_tmpDate){
									if(_tmpDate!=_date){
										_date = _tmpDate;
										_showDate = o.public_date;
									}else{
										_showDate = o.public_date.substr(11,8);
									}
								}
							}
							_html += '<div class="list-group-item">'+
										'<span class="badge">'+_showDate +'</span>' +
										'<a class="msg-info" href="javascript:void(0);" mid="'+o.id+'" alt="' + o.name+'">' + o.name + '</a>'	+					
									'</div>';
						})
					}
					
					
				}
				
				if(_html){
					_el.append(_html);
					
					//文档名称点击事件
					var _doc = _el.find('.msg-info');
					
					
					if(_doc.length>0){
						_doc.unbind('click');
						_doc.bind('click',btnEvent.infoClick);
					}
				}else{
						
					_html = '<div class="list-group-item">'+
								'<a class="msg-empty" href="javascript:void(0);" >当前没有未查看通知信息。</a>'	+					
							'</div>';
					_el.append(_html);
				}
				
				if(e){
					$(e.currentTarget).removeClass('disabled');
				}
			}
			,
			//初始化按钮
			initBtn:function(){
				
				//按钮事件绑定
				var _btn = $('#'+rootid+ ' .btn-main')
				
				if(_btn.length>0){
					_btn.unbind('click');
					_btn.bind('click',private_method.btn_listenner);
				}
				
			}
			,
			//初始化按钮事件
			btn_listenner:function(e){
				init.applyBtnEvt({btnEvt:e,btnConfig:btnEvent});
			}
			
			
			
		
		};

		
		var btnEvent = {
			
			
			/**
			 * 新增
			 */
			listAdd:function(e){
				var _url = '/'+init.getSite()+'/document/query/getPage.action?code=message';
						
				var _c = !_c?$('#main-container'):_c;
				
				_c.empty();
				_c.load(_url);
				
			}
			,
			/**
			 * 未读通知
			 */
			listRole:function(e){				
				var data = bsUtil.getNewDoc();
						
				private_method.generateNotify({
					data: data,
					type: 2,
					evt: e
				})
						
					
			}
			,
				//读取通知公告
			listAll:function(e){
			//alert('getNotify fired...');
				var _url = '/portal/getTypeListDomain';
				
				var _code = codeDef.getConfig({type:'doctype',code:'notification'});
				var _param = {
					url:_url,
					data:{condition:{typeCode:_code},rows:10},
					type:'post',
					success:function(data){
						
						private_method.generateNotify({data:data,type:1,evt:e})
					},
					failure:function(){
					
					}
				}
				
				$.ajax(_param)
			}
			
			,
			//文档名称点击事件
			infoClick:function(evt){
				if(evt){
					var _t = evt.currentTarget;
					if(_t){
						var _id = $(_t).attr('mid');
						
						if(_id){
							
							var _param = {
								url:'/'+init.getSite()+'/docread/save.action',
								data:{id:_id},
								success:function(){
									msgView.openPage({id:_id});
								}
								,
								failure:function(){
									bsMsgServ.errorSlide(
										codeDef.getConfig({
											type:'save',
											code:'error'
										})										
									);
								}
							}
							
							$.ajax(_param);
							
						}
					}
				}
			}
			
		}
		
		var public_method = {
			
			initPage:function(_options){
				
				var usr = init.getCurrentUser();
				
				
				if(usr){
					$('#' + rootid + ' .user-info').html(usr.name);
				}
				private_method.calendarFunc();
				
				btnEvent.listAll();
				
				private_method.initBtn();
				
				//获取业务数量提示信息
				bsUtil.updateDocBadge();
				
				bsUtil.updateIssueBadge();
				
				bsUtil.updateMailBadge();
				
				bsUtil.updateProcurementNotify();
			}
			
		}
		
		return public_method;
})

